home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / SSTRACE.ARC / SS TRACE DOCS next >
Encoding:
Text File  |  2019-04-13  |  7.2 KB  |  159 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.         
  9.         
  10.         ╙╔╬╟╠┼ ╙╘┼╨ ╘╥┴├┼╥
  11.         
  12.         BY EGBELL
  13.         
  14.         
  15.              ╫HEN DEBUGGING A PROGRAM, IT IS NECESSARY TO FOLLOW THE
  16.         FLOW OF LOGIC.  ╫HEN YOU GET UNEXPECTED RESULTS, IS THE PROGRAM
  17.         DOING WHAT YOU WANT IT TO DO OR IS IT JUST DOING WHAT YOU TOLD
  18.         IT TO DO.  ╘HERE ARE SEVERAL UTILITIES OF SOME USEFULNESS IN
  19.         MONITORING THIS.
  20.              ╘HERE ARE 'DUMP' UTILITIES WHICH DUMP THE NAMES AND CURRENT
  21.         VALUES OF ALL NON-ARRAY VARIABLES.  ╘HIS CAN BE VERY USEFUL IN
  22.         DETERMINING WHY SOMETHING IS HAPPENING IN A PROGRAM, BUT WITH
  23.         THE SPEED OF EXECUTION AT WHICH A COMPUTER OPERATES, AND THE
  24.         MANY TWISTS AND TURNS THE PROGRAM CAN TAKE WHILE GETTING FROM
  25.         HERE TO THERE, IT CAN BE A LONG PROCESS OF FINDING OUT WHERE A
  26.         PROBLEM ORIGINATED.
  27.              ═ORE USEFUL ARE THE 'TRACE' UTILITIES.  ╘HESE TRACE THE
  28.         PROGRAM FLOW BY PRINTING THE LINE NUMBER OF THE ┬┴╙╔├ STATEMENT
  29.         CURRENTLY BEING EXECUTED.  ╔F YOU HAVE A ├OMMODORE 128 AND HAVE
  30.         NEVER TRIED IT, ENTER THE ╘╥┴├┼ MODE BY TYPING ╘╥╧╬, THEN
  31.         RUNNING ANY ┬┴╙╔├ PROGRAM.  [╘╥╧╞╞ TOGGLES THIS FUNCTION OFF]
  32.         ╘HERE HAVE BEEN MANY SUCH UTILITIES PUBLISHED FOR THE ├64 OVER
  33.         THE YEARS ALSO, ALL OF WHICH FUNCTION BASICALLY THE SAME.  ┴S
  34.         HELPFUL AS THIS TYPE OF PROGRAM IS, THERE ARE SOME SERIOUS
  35.         LIMITATIONS.
  36.              ╞IRST, SCREEN DISPLAY IS HOPELESSLY DISRUPTED AS ROWS AND
  37.         ROWS OF LINE NUMBERS ARE DUTIFULLY DISPLAYED ONSCREEN STARTING
  38.         WHEREVER THE CURSOR HAPPENED TO BE RESTING AT THE TIME.  ╘HERE
  39.         IS MUCH INFORMATION PRESENTED, BUT IT IS CONFUSING IF YOU CAN
  40.         USE IT AT ALL.  ╘HIS IS PARTICULARLY TRUE IN THE CASE OF DEEPLY
  41.         NESTED LOOPS OR ╟╧╙╒┬/╟╧╘╧ PROCEDURES.
  42.              ╙ECOND, THE TRACE UTILITY, LIKE THE PROGRAM BEING TRACED,
  43.         IS OPERATING AT EXTREME SPEEDS.  ╔T IS VIRTUALLY IMPOSSIBLE TO
  44.         FOLLOW THE EXECUTION UNLESS FREQUENTLY STOPPED BY USER INPUT OR
  45.         ╙╘╧╨ STATEMENTS.  ╘HIS CAN BE IRRITATING AND CONFUSING.  ╔F YOU
  46.         ╙╘╧╨ THE PROGRAM, YOU MUST START IT AGAIN WITH A ╟╧╘╧, ├╧╬╘, OR
  47.         ╥╒╬.  [╥UN WILL NOT PRESERVE YOUR VARIABLES.]  ╔F YOU MERELY
  48.         REQUEST USER INPUT, THE SCREEN DISPLAY PROBLEM MENTIONED ABOVE
  49.         PRESENTS ITSELF.
  50.              ╞INALLY, YOU LEARN LITTLE FROM A LINE NUMBER UNLESS YOU ARE
  51.         WORKING WITH A PROGRAM LISTING IN FRONT OF YOU.  ╧F COURSE,
  52.         LISTING WILL NOT TELL YOU WHAT THE VARIABLES WILL BE AT
  53.         DIFFERENT STAGES OF THE PROGRAM.  ┴ND SINCE YOU WROTE THE
  54.         PROGRAM, IT IS YOUR LOGIC.  ╔F THE LISTING WERE WORKING AS
  55.         EXPECTED, YOU WOULDN'T NEED TO TRACE THE FLOW.  ╙O EVEN A
  56.         LISTING IS OF LIMITED HELP IN BATTLING SOME BUGS.
  57.              ╘HERE IS A SOLUTION.  ╙╙ ╘RACE IS A IS A SHORT, SINGLE STEP
  58.         TRACE ROUTINE WHICH WILL LEAD YOU ALONG THE PRECISE ROUTE YOUR
  59.         PROGRAM IS TAKING.  ┬UT IT DOES MORE!
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.              ╘HERE IS NO DISRUPTION OF SCREEN DISPLAY EXCEPT THE TOP 2
  75.         SCREEN LINES.  ╔F YOU AVOID USING THESE LINES, YOUR DISPLAY WILL
  76.         BE UNDISTURBED.  ┬UT IT DOES STILL MORE!
  77.              ═ORE THAN JUST THE LINE NUMBERS, THE COMPLETE LINE OF ┬┴╙╔├
  78.         CODE ╘╧ ┬┼ ┼╪┼├╒╘┼─ IS DISPLAYED FOR YOU.  ┘OU KNOW WHAT WILL
  79.         TAKE PLACE AND WHERE IT WAS COMMANDED TO DO SO.  ┘OU KNOW
  80.         EXACTLY WHAT IS BEING TESTED IN THE ╔╞ STATEMENTS.
  81.              ┼VEN DISPLAYING A LINE OF CODE WOULD BE OF MINIMAL VALUE IF
  82.         IT HAPPENED AT EXTREME SPEED, SO ╙╙ ╘╥┴├┼ IS A ╙INGLE ╙TEPPER.
  83.         ┘OU WILL STEP THROUGH YOUR PROGRAM ONE LINE AT A TIME.  ┴FTER
  84.         THE LINE IS DISPLAYED, YOU MUST PRESS THE ├╧══╧─╧╥┼ BUTTON AT
  85.         THE LOWER LEFT CORNER OF THE KEYBOARD TO CONTINUE.  ╫HEN YOU DO,
  86.         THE LINE OF CODE YOU ARE LOOKING AT IS EXECUTED AND THE NEXT
  87.         LINE TO BE EXECUTED IS DISPLAYED.  ╔F THE CURRENT LINE SAYS ╟╧╘╧
  88.         50 THE NEXT LINE YOU WILL SEE IS LINE 50.  ╘HIS FEATURE COULD
  89.         ALSO BE HELPFUL TO NOVICE COMPUTER USERS WONDERING WHAT A LINE
  90.         OF CODE DOES, FOR EXAMPLE, ╨╧╦┼ 53280,0.
  91.              ╘HIS COULD GET OLD VERY FAST IF YOU ONLY NEEDED TO TRACE
  92.         ONE SMALL SECTION OF THE PROGRAM, SO A SINGLE ╨╧╦┼ TOGGLES THE
  93.         FUNCTION ON AND OFF.  ╙IMPLY ╨╧╦┼ 249,1 TO ╘╥┴├┼ AND ╨╧╦┼ 249,0
  94.         TO ╘╒╥╬ ╔╘ ╧╞╞.  ╘HIS CAN BE FROM EITHER DIRECT OR PROGRAM
  95.         MODE.
  96.              ─UE TO THE WAY THE PROGRAM FUNCTIONS, IT IS BEST TO HAVE
  97.         ╞╧╥ STATEMENTS ON LINES TO THEMSELVES AS THEY ARE PRINTED ONLY
  98.         THE FIRST TIME THROUGH THE LOOP.  ╘HIS IS NOT NECESSITY....
  99.         MERELY HELPFUL.
  100.              ╔F YOU USED
  101.         
  102.         10 ╞╧╥ ╪=1 ╘╧ 10:╨╥╔╬╘"╙╔╬╟╠┼ ╙╘┼╨"
  103.         20 ╨╥╔╬╘ "╠╔╙╘╔╬╟ ╘╥┴├┼"
  104.         30 ╬┼╪╘
  105.         
  106.         YOU WOULD SEE LINE TEN DISPLAYED ONCE THEN 20 AND 30 WOULD BE
  107.         DISPLAYED FOR THE DURATION OF THE LOOP.  ╘HE STRING IN LINE 10
  108.         WOULD BE PRINTED EACH TIME, BUT THE LINE WOULD NOT BE
  109.         DISPLAYED.
  110.              ╙╙ ╘RACE IS RE-LOCATABLE.  ╔F YOU CHOOSE ┬┴╙╔├ ╥┴═ [2048 TO
  111.         40960] YOU SHOULD GO NO LOWER THAN 32768 AND YOU CAN GO NO
  112.         HIGHER THAN 40706.  ╔F YOU CHOOSE THE ├ ┬╠╧├╦ OF ╥┴═ [49152 TO
  113.         53247] YOU CAN GO NO HIGHER THAN 52991.  ┴CTUALLY, ╙╙ ╘RACE IS
  114.         INSTALLED BY A ┬┴╙╔├ LOADER WHICH GETS THE LOAD ADDRESS OF YOUR
  115.         CHOICE, ╨╧╦┼'S THE PROGRAM INTO MEMORY, MAKES TWO ADJUSTMENTS,
  116.         AND, IF NECESSARY, PROTECTS THE PROGRAM FROM ┬┴╙╔├.  ╞INALLY, IT
  117.         STARTS ITSELF, AND DISPLAYS THE TOGGLE ADDRESS AND VALUES TO
  118.         ACTIVATE AND DE-ACTIVATE THE UTILITY.
  119.              ┴FTER YOU TYPE IN THE LOADER, SAVE IT.  ╔T WILL BE ╬┼╫'ED
  120.         AFTER SUCCESSFULLY INSTALLING ╙╙ ╘RACE.  ╔F YOU SHOULD MAKE AN
  121.         ERROR IN YOUR TYPING, THOUGH, THE PROGRAM WILL ABORT WITH NO
  122.         DAMAGE DONE.
  123.              ╘HE PROGRAM WORKS BY INTERCEPTING THE ├╚╥╟┼╘ ROUTINE AT
  124.         ADDRESS 115 IN ZERO PAGE.  ╔T RE-DIRECTS THIS ROUTINE TO A
  125.         MODIFIED VERSION WHICH LISTS THE LINE EACH TIME A NEW LINE
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.         NUMBER IS ENCOUNTERED.
  141.              ┴LL PROGRAM VARIABLES ARE IN ZERO PAGE TO SAVE SPACE.  ╘O
  142.         BE ON THE SAFE SIDE, EACH TIME THE ROUTINE IS CALLED, ZEROPAGE
  143.         IS MOVED TO ANOTHER AREA WHILE THE LINE IS LISTED, THEN RESTORED
  144.         TO ITS ORIGINAL.  ╘HIS DATA IS  STORED IN A FLOATING BUFFER.
  145.         ┘ES, A FLOATING BUFFER THAT IS VERY WELL PROTECTED.  ╘HE POINTER
  146.         AT ADDRESS 49/50 POINTS TO THE START OF FREE ╥┴═.  ╘RACE USES
  147.         THIS POINTER TO STORE 254 BYTES.  ┼ACH TIME ┬┴╙╔├ CREATES A
  148.         VARIABLE, OR A LINE IS ADDED TO THE PROGRAM, THIS POINTER IS
  149.         UPDATED.  ╘HUS THIS BUFFER FLOATS IN ╥┴═ THAT WILL RARELY BE
  150.         USED.  ├ONCEIVABLY YOU COULD HAVE A PROGRAM SO LONG AND STRING
  151.         INTENSIVE THAT THE DATA WOULD BE OVERWRITTEN, BUT THIS IS
  152.         EXTREMELY UNLIKELY.
  153.              ╞INALLY, THE ROUTINE WAS WRITTEN IN SUCH A WAY AS TO BE
  154.         COMPATIBLE WITH OTHER ═ACHINE ╠ANGUAGE UTILITIES.  ╘HE POPULAR
  155.         ADDRESSES AT 251-254 IN ZERO PAGE ARE UNUSED.  ┴DDRESSES 248 TO
  156.         250 ARE USED HOWEVER, MAKING THIS ROUTINE UNUSABLE WITH ╥╙ 232
  157.         DEVICES WITHOUT MODIFICATION TO ╙╙ ╘RACE.
  158.                                                                         
  159.